// pages/my/carManage/index.js
import http from '../../../services/http/index'
import { ListData } from '../../../utils/Data'
let util = require('../../../utils/index')

Page({

  /**
   * 页面的初始数据
   */
  data: {
    allDriverCars: [],//“车辆管理”所有车辆
    startX: 0, //开始坐标
    startY: 0,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.data.allDriverCars.push({
      // content: i + " 向左滑动删除哦,向左滑动删除哦,向左滑动删除哦,向左滑动删除哦,向左滑动删除哦",
      isTouchMove: false //默认全隐藏删除
    })
    this.setData({
      allDriverCars: this.data.allDriverCars
    })
  },
  //手指触摸动作开始 记录起点X坐标
  touchstart: function (e) {
    //开始触摸时 重置所有删除
    this.data.allDriverCars.forEach(function (v, i) {
      if (v.isTouchMove)//只操作为true的
        v.isTouchMove = false;
    })
    this.setData({
      startX: e.changedTouches[0].clientX,
      startY: e.changedTouches[0].clientY,
      allDriverCars: this.data.allDriverCars
    })
  },
  //滑动事件处理
  touchmove: function (e) {
    var that = this,
      index = e.currentTarget.dataset.index,//当前索引
      startX = that.data.startX,//开始X坐标
      startY = that.data.startY,//开始Y坐标
      touchMoveX = e.changedTouches[0].clientX,//滑动变化坐标
      touchMoveY = e.changedTouches[0].clientY,//滑动变化坐标
      //获取滑动角度
      angle = that.angle({ X: startX, Y: startY }, { X: touchMoveX, Y: touchMoveY });
    that.data.allDriverCars.forEach(function (v, i) {
      v.isTouchMove = false
      //滑动超过30度角 return
      if (Math.abs(angle) > 30) return;
      if (i == index) {
        if (touchMoveX > startX) //右滑
          v.isTouchMove = false
        else //左滑
          v.isTouchMove = true
      }
    })
    //更新数据
    that.setData({
      allDriverCars: that.data.allDriverCars
    })
  },
  /**
   * 计算滑动角度
   * @param {Object} start 起点坐标
   * @param {Object} end 终点坐标
   */
  angle: function (start, end) {
    var _X = end.X - start.X,
      _Y = end.Y - start.Y
    //返回角度 /Math.atan()返回数字的反正切值
    return 360 * Math.atan(_Y / _X) / (2 * Math.PI);
  },
  //删除事件
  del: function (e) {
    console.log('点击删除')
    var that = this;
    var del_id = e.currentTarget.dataset.id;
    // that.data.allDriverCars.splice(e.currentTarget.dataset.index, 1)
    // that.setData({
    //   allDriverCars: this.data.allDriverCars
    // })
    // // 请求删除通知接口
    const params = {
      id: del_id
    }
    wx.showToast({
      title: 'loading',
      icon: 'loading',
      duration: 10000,
      mask: true
    });
    http.delDriverCar(params)
      .then(data => {
        wx.showToast({
          title: '删除成功',
          icon: 'none',
          duration: 2000
        })
        wx.hideToast();
        // 1秒钟之后重新获取数据
        setTimeout(function () {
          that.getDriverCarsInfo();
        }, 1000)
      }).catch(err => {
        wx.hideToast();
        console.log(err)
      })

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 刷新"“车辆管理”所有车辆"列表
    this.getDriverCarsInfo();
  },
  // 请求-"“车辆管理”所有车辆"列表
  getDriverCarsInfo() {
    var that = this;
    wx.showToast({
      title: 'loading',
      icon: 'loading',
      duration: 10000,
      mask: true
    });
    http.getDriverCars()
      .then(data => {
        var allDriverCars = Object.assign(new ListData(), {
          data: data.list
        })
        that.setData({
          allDriverCars: allDriverCars.data
        });
        console.log(allDriverCars)
        wx.hideToast();
      }).catch(err => {
        wx.hideToast();
        console.log(err)
      })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})